package controllers;

import java.util.ArrayList;
import java.util.Date;

import entities.IGarage;
import entities.IMaster;
import entities.IOrder;

public interface IAutoservice {

	public Integer getEmptyGarage();

	public ArrayList<IOrder> SortOrderByBeginningDate();

	public ArrayList<IOrder> SortOrderByDeadlineDate();

	public ArrayList<IOrder> SortOrderByFillingDate();

	public ArrayList<IOrder> SortOrderByPrice();

	public ArrayList<IMaster> SortMasterByEmployment();

	public ArrayList<IMaster> SortMasterByName();

	public ArrayList<IOrder> SortMadingOrderByBeginningDate();

	public ArrayList<IOrder> SortMadingOrderByDeadlineDate();

	public ArrayList<IOrder> SortMadingOrderByFillinggDate();

	public ArrayList<IOrder> SortMadingOrderByPrice();

	public IOrder getOrderByMaster(String masterName);

	public IMaster getMasterByOrder(Integer numberOrder);

	public ArrayList<IOrder> SortDeletedOrderByPeriodByBeginningDate(
			Date begin, Date end);

	public ArrayList<IOrder> SortCanceledOrderByPeriodByBeginningDate(
			Date begin, Date end);

	public ArrayList<IOrder> SortMadeOrderByPeriodByBeginningDate(Date begin,
			Date end);

	public ArrayList<IOrder> SortDeletedOrderByPeriodByDeadlineDate(Date begin,
			Date end);

	public ArrayList<IOrder> SortCanceledOrderByPeriodByDeadlineDate(
			Date begin, Date end);

	public ArrayList<IOrder> SortMadeOrderByPeriodByDeadlineDate(Date begin,
			Date end);

	public ArrayList<IOrder> SortDeletedOrderByPeriodByFillingDate(Date begin,
			Date end);

	public ArrayList<IOrder> SortCanceledOrderByPeriodByFillingDate(Date begin,
			Date end);

	public ArrayList<IOrder> SortMadeOrderByPeriodByFillingDate(Date begin,
			Date end);

	public ArrayList<IOrder> SortDeletedOrderByPeriodByPrice(Date begin,
			Date end);

	public ArrayList<IOrder> SortCanceledOrderByPeriodByPrice(Date begin,
			Date end);

	public ArrayList<IOrder> SortMadeOrderByPeriodByPrice(Date begin, Date end);

	public Integer getFreePlacesOnDate(Date date);

	public String getNextFreeDate();

	public void addMaster(IMaster master);

	public void deleteMaster(String masterName);

	public void addGarage(IGarage garage);

	public void deleteGarage(Integer numberGarage);

	public void addOrder(IOrder order, String masterName, Integer numberGarage);

	public void markOrderDeleted(Integer numberOrder);

	public void markOrderCanceled(Integer numberOrder);

	public void markOrderMade(Integer numberOrder);

	public void ShirtTimeOrder(Date newDate, Integer numberOrder);

	public IOrder cloneOrder(Integer numberOrder);

	public void exportGarages();

	public void exportMasters();

	public void exportOrders();

	public void importGarages();

	public void importMasters();

	public void importOrders();

	public void resaveData();

}
